import { Injectable } from '@nestjs/common';
import { CreateRoleDto } from './dto/create-role.dto';
import { UpdateRoleDto } from './dto/update-role.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { Roles } from './entities/role.entity';
import { Repository } from 'typeorm';

@Injectable()
export class RolesService {
    constructor(
        // 注入roles实例
        @InjectRepository(Roles)
        private rolesRepository: Repository<Roles>
    ){}
    async create(createRoleDto: CreateRoleDto) {
        return await this.rolesRepository.save(createRoleDto);
    }

    findAll() {
        return this.rolesRepository.find();
    }

    findOne(id: string) {
        return this.rolesRepository.findOne({
            where:{id}
        });
    }

    async update(id: string, updateRoleDto: UpdateRoleDto) {
        const role = await this.findOne(id)
        const newRole = this.rolesRepository.merge(role , updateRoleDto)
        return this.rolesRepository.save(newRole);
    }

    remove(id: string) {
        // remove方法 移除的是实例  且触发钩子函数
        // delede方法 移除id   不触发钩子函数
        return this.rolesRepository.delete(id);
    }
}
